/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GUI;

import Facade.Facade;
import Objetos.Usuario;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author celio
 */
public class PrevistoXRealizado extends JPanel {

    JLabel mes, ano;
    JComboBox tMes, tAno;
    String meses[] = {" ", "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"};
    String anos[] = {" ", "2014"};
    JButton consultar, limpar;

    JTable tabela;
    Vector linhas, dados, cabecalho;
    DefaultTableModel dtm;
    JScrollPane scroller;

    Facade fa;

    public PrevistoXRealizado(final Usuario usu) {

        JLabel tela = new JLabel("... :::   Previsto x Realizado   ::: ...");
        tela.setBounds(400, 10, 500, 20);
        add(tela);

        mes = new JLabel("Mês: ");
        ano = new JLabel("Ano: ");
        tMes = new JComboBox(meses);
        tAno = new JComboBox(anos);
        consultar = new JButton("Consultar");
        limpar = new JButton("Limpar");

        cabecalho = new Vector();
        linhas = new Vector();
        dados = new Vector();

        for (int a = 1; a <= 31; a++) {

            cabecalho.addElement("Dia " + Integer.toString(a));

        }

        tabela = new JTable(linhas, cabecalho);
        tabela.setFont(new Font("Times New Roman", Font.BOLD, 14));
        dtm = (DefaultTableModel) tabela.getModel();
        scroller = new JScrollPane(tabela, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);

        for (int a = 1; a <= 31; a++) {

            tabela.getColumnModel().getColumn(a - 1).setPreferredWidth(100);
            tabela.getColumnModel().getColumn(a - 1).setResizable(false);

        }

        tabela.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);

        criaTabela();

        mes.setBounds(10, 30, 40, 20);
        tMes.setBounds(50, 30, 100, 20);
        ano.setBounds(10, 60, 40, 20);
        tAno.setBounds(50, 60, 80, 20);
        consultar.setBounds(20, 90, 100, 20);
        limpar.setBounds(180, 90, 100, 20);
        scroller.setBounds(5, 120, 1090, 300);

        add(mes);
        add(tMes);
        add(ano);
        add(tAno);
        add(consultar);
        add(limpar);
        add(scroller);

        consultar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                fa = new Facade();
                for (int a = 0; a <= 30; a++) {

                    String somaDiaEntradas = fa.somarDia_Conta(Integer.toString(a + 1), Funcoes.funcoes.pegarNumeroMes(tMes.getSelectedItem().toString()), tAno.getSelectedItem().toString(), "0",usu);
                    String somaDiaSaidas = fa.somarDia_Conta(Integer.toString(a + 1), Funcoes.funcoes.pegarNumeroMes(tMes.getSelectedItem().toString()), tAno.getSelectedItem().toString(), "1",usu);
                    if (somaDiaEntradas == null) {
                        somaDiaEntradas = "00,00";
                        dtm.setValueAt("R$ " + somaDiaEntradas, 1, a);
                    } else {
                        dtm.setValueAt("R$ " + somaDiaEntradas, 1, a);
                    }
                    if (somaDiaSaidas == null) {
                        somaDiaSaidas = "00,00";
                        dtm.setValueAt("R$ " + somaDiaSaidas, 3, a);
                    } else {
                        dtm.setValueAt("R$ " + somaDiaSaidas, 3, a);
                    }
                    try {
                        dtm.setValueAt("R$ " + Funcoes.funcoes.paraFormatoDinheiro(Double.parseDouble(Funcoes.funcoes.formatoParaInserir(somaDiaEntradas)) - Double.parseDouble(Funcoes.funcoes.formatoParaInserir(somaDiaSaidas))), 5, a);
                    } catch (ParseException ex) {
                        Logger.getLogger(PrevistoXRealizado.class.getName()).log(Level.SEVERE, null, ex);
                    }

                }

            }
        });

        limpar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

            }
        });

        setLayout(null);
        setBackground(Color.LIGHT_GRAY);
        setBorder(BorderFactory.createBevelBorder(1, Color.DARK_GRAY, Color.DARK_GRAY));
        setSize(800, 800);
        setVisible(true);
        revalidate();
        repaint();
    }

    private void criaTabela() {

        dtm.addRow(new Object[]{"Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas", "Entradas"});
        dtm.addRow(new Object[]{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""});
        dtm.addRow(new Object[]{"Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas", "Saídas"});
        dtm.addRow(new Object[]{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""});
        dtm.addRow(new Object[]{" - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "});
        dtm.addRow(new Object[]{"Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo", "Saldo"});
        dtm.addRow(new Object[]{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""});

    }

}
